queue foo
: number: ( u "name" -- )
	create here swap 0 , ,  foo enqueue ;
: @number ( addr -- u )  cell+ @ ;
: numbers ( -- i*x )  foo begin @ ?dup while dup @number swap repeat ;

T{ 17 number: seventeen => }T
T{ 18 number: eighteen => }T
T{ 23 number: twenty-three => }T
T{ 197 number: one-ninety-seven => }T

T{ numbers => 17 18 23 197 }T

T{ foo dequeue => seventeen }T
T{ foo dequeue => eighteen }T
T{ foo dequeue => twenty-three }T
T{ foo dequeue => one-ninety-seven }T

T{ one-ninety-seven foo enqueue => }T
T{ twenty-three foo enqueue => }T
T{ eighteen foo enqueue => }T

T{ numbers => 197 23 18 }T
